mariadb常见错误

记录了常见的mariadb问题

mysqld: Table ‘./mysql/proc’ is marked as crashed and should be repaired

mysql.proc表是什么:

  • mariadb官网
  • 主要包含 stored procedures & stored functions

坏了的表,怎么check和修复

在mysql env下:

MariaDB [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> check table proc;
+------------+-------+----------+----------+
| Table      | Op    | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status   | OK       |
+------------+-------+----------+----------+
1 row in set (0.01 sec)

REPAIR TABLE proc;

在终端中:

mysqlcheck -uroot -proot mysql -c # 检查mysql中全部表
mysqlcheck -uroot -proot mysql proc -c # 检查mysql.proc
mysqlcheck -uroot -proot mysql -r # 修复mysql中全部表
mysqlcheck -uroot -proot mysql proc -r# 修复mysql.proc

另外注意到,mysql.proc是mysiam表,可以使用myisamchk来修复,具体如下:

cd /var/lib/mysql # 找到mysql的数据目录
myisamchk --recover --quick ./mysql/proc # 只修复index file,不处理data file问题
myisamchk --recover ./mysql/proc # 首选方式,几乎能修复所有问题(除了unique key not unique)
myisamchk --safe-recover ./mysql/proc # use old recover method,应当在--recover无效之后尝试

一般是什么原因造成的

keep crash怎么办

创建表的时候,error 28

这个时候一般是盘满了,可以使用df -kh查看磁盘的使用情况。